/* 
 公共的js
 
 */
// 防抖:在wait时间内只会执行一次，如果在wait内又再次点击，则会重新计时。
export function debounce(fnc, wait, immediate) {
    let timer = null

    return function () {
        let _this = this
        let args = arguments//改变参数指向

        if (timer) {
            clearInterval(timer)
        }

        if (immediate) {
            let callNow = !timer

            // 在wait时间内就把timer置空
            timer = setTimeout(() => {
                timer = null
            }, wait);

            if (callNow) {
                fnc.apply(_this, args)
            }
        } else {
            timer = setTimeout(() => {
                fnc.apply(_this, args) //这是箭头函数啊要改变当前指向问题
            }, wait);
        }
    }
}

// 节流：持续性地触发事件，每隔一段时间，只会执行一次 在新旧时间内
export function throttle(fnc,wait,options) {
    let timer=null
    let old=0
    if(!options) options={}

    return function(){
        let _this=this
        let args=arguments

        let now=new Date().valueOf()

        // 第一次不执行的时候
        if(options.leading==false &&!old){
            old=now
        }

        if(now-old > wait){
            if(timer){
                clearTimeout(timer)
                timer=null
            }
            fnc.apply(_this,args)
            old=now
        }else if(!timer && options.trailling!==false){
            // 最后一次也会执行
            timer=setTimeout(() => {
                old=new Date().valueOf()
                timer=null
               fnc.apply(_this,args)
            }, wait);
        }

    }
}

// 预览图片需要传递图片地址和图片对象
export function previewImg(list,e) {
	console.log('点击');
			uni.previewImage({
				urls: list, //图片地址
				current: e.target.dataset.src,//当前
				loop: true,
				longPressActions: {
					itemList: ['发送给朋友', '保存图片', '收藏'],
					success: data => {
						//可以自定义分享操作
						console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
					},
					fail: function(err) {
						// console.log(err.errMsg);
					}
				},
			});
		}